{
let num:number = 123;

let str:string = "hello world";

let flag:boolean = true;

let und:undefined = undefined;

let nul:null = null;

let any:any = "hello";

let un:unknown = "hello";

num = un as number;

str = any as string;

let arr:number[] = [1,2,3,4,5];

let arr2:Array<number> = [1,2,3,4,5];

let arr3:[number,string] = [1,"hello"];

let obj:{name:string,age?:number} = {name:"张三",age:18};

let obj2:{name:string,[propName:string]:any} = {name:"张三",age:18,sex:"男"};

enum Color{
    Red,
    Green,
    Blue
}

type MyType = string | number;

interface MyInterface{
    name:string;
    age:number;
}

let fn:(a:number,b:number)=>number = (a,b)=>a+b;

let fn2:()=>void = () =>{console.log("hello world")};

let fn3: ()=>never = () =>{throw new Error("error")};
}